Как все начиналось. Apple, PayPal, Yahoo! и еще 20 историй известных стартапов глазами их основателей - Джессика Ливингстон
Шрифт:
Интервал:
Закладка:
Компания Microsoft применила этот же метод разработки программного обеспечения при создании SharePoint. А затем они провели исследование. Изучив программы Vignette, Broadvision, ArsDigita Community System и еще несколько похожих программ, в Microsoft пришли к выводу, что в свое приложение или следует добавить несколько дополнительных функций. Менеджеры по продукту написали спецификацию для новой версии; и после года или нескольких лет работы новая версия увидела свет и… не понравилась пользователям. Оказалось, что с помощью SharePoint слишком сложно программировать веб‑приложения. Эта программа сама по себе была слишком сложной. Поэтому пришлось проводить опросы пользователей, выяснять, какие функции им не нравятся, устранять недочеты. На это у Microsoft ушли годы.
Описанный метод программирования имеет право на существование, если у вас нет никакой возможности изучить реакцию пользователей за исключением предоставления им новой версии программы на компакт‑диске, а затем наблюдения за их работой с документами. Однако если у вас есть возможность установить веб‑приложение у себя на сервере, а затем проанализировать его работу по записям в журнале веб‑сервера и отзывам пользователей, почему бы этого не сделать? Это позволит сократить двухгодичный период разработки приложения, скажем, до двух месяцев. Мы выпускали новые версии веб‑приложений каждые два‑три месяца.
Таким образом, мы беспокоились по поводу действий конкурентов, но это были беспричинные опасения. Как когда‑то сказал мой друг: «Большинство огнестрельных ранений – самострелы».
Ливингстон. Компания ArsDigita отличалась от других скоростью создания приложений?
Гринспан. Да. Если изучать по книгам теорию разработки программного обеспечения, то всегда обязательным условием является длительный цикл создания и тестирования программы с привлечением большого количества людей. Этот процесс очень долгий, поскольку изначально не предполагается, что можно просто пронаблюдать за людьми, которые пользуются работающим веб‑приложением или набором программных инструментов.
Ливингстон. Компания ArsDigita прославилась своей корпоративной культурой. Заключалась ли часть вашей стратегии в привлечении молодых, действительно классных «хакеров», способных к профессиональному росту? Думали ли вы о том, что у этих ребят есть друзья, такие же хорошие программисты, которых можно взять на работу?
Гринспан. Привлечение молодых программистов всегда было частью нашей стратегии. Всегда трудно находить сотрудников. Независимо от области специализации вашей компании, большая часть людей с хорошим образованием и богатым опытом работы уже где‑то работают. В условиях ограниченного количества талантливых специалистов ИТ‑компании «дерутся» за трудовые ресурсы, предлагая высокие зарплаты. Специалисты старше тридцати лет попросту недоступны. Они уже работают в собственных стартапах. Естественно, мы думали о том, как принять на работу и вырастить талантливых сотрудников.
Я обучал программированию в Массачусетском технологическом институте и, размышляя о карьере программиста, пришел к неутешительному выводу о том, что средний программист намного менее счастлив в своей работе, чем средний механик легкомоторного самолета. В настоящее время я прохожу обучение в летной школе, поэтому знаю, что стать механиком самолета можно после полуторагодичного обучения всего за 30 тыс. долл. (даже дешевле при опыте работы не менее трех лет и наличии сертификата FAA). Механик работает в небольшом коллективе и непосредственно встречается с клиентом. У него не возникает чувства отчужденности, о котором говорил Карл Маркс – отчужденности рабочих от результатов их труда (когда человек не видит, как его труд влияет на жизнь других людей).
Механик легкомоторного самолета непосредственно взаимодействует с клиентом. Выполнение многих задач по обслуживанию машины требует одновременной работы двух или трех человек, то есть механик работает в коллективе. По моему наблюдению, эти люди действительно счастливы. Программисты же изолированы друг от друга. Каждый сидит на своем рабочем месте, и никто не думает о той общей задаче, которую они выполняют. Мне кажется, программистов нельзя назвать инженерами в лучшем смысле этого слова. Инженер видит существующую проблему в организации или обществе и стремится найти пути ее решения. Хороший инженер предлагает продуманное, финансово эффективное решение, реализует и проверяет его результативность. Вот что такое инженерия. Если вы понаблюдаете за работой строителей и архитекторов, то увидите, что они взаимодействуют непосредственно с заказчиком и контролируют весь процесс решения поставленной задачи.
Ливингстон. Вам удалось вывести своих программистов из этого тупика?
Гринспан. Многие программисты оказались в таком тупике, потому что делали то, что им скажут. По этой причине многие из них так легко соглашаются на аутсорсинг. Если программист никогда не общается с заказчиком, никогда не думает самостоятельно, а только решает простые задачки, то на него очень легко переложить множество каких‑либо неприятных дел. Я не хотел, чтобы мои студенты оказались в такой ситуации. Пусть лучше они сидят за одним столом с теми, кто принимает решения, и становятся настоящими инженерами. Например, пусть программист сидит за одним столом с владельцем интернет‑форума или сайта электронной коммерции и говорит: «Я изучил цели вашего бизнеса и вот какие решения могу вам предложить исходя из опыта работы над созданными мною десятью сайтами и теми ста сайтами, которые я исследовал». Я хочу, чтобы мои студенты были равными партнерами по дизайну и построению сайтов, а не просто кодировщиками.
Моим желанием было поднять программистов на этот уровень и сделать из них таких же профессионалов, как юристы и врачи, сделать из них настоящих инженеров.
Ливингстон. Поясните, что вы подразумеваете под конечным результатом?
Гринспан. Нашим программистам необходимо было развивать такие навыки, которые позволили бы им начинать реализацию проекта с постановки проблемы. Они инвестировали свое время в повышение стоимости своего же труда. Я очень осторожно старался вдохновить программистов на построение собственной профессиональной репутации: мы указывали имя программиста в созданном программном коде, за который он нес ответственность. Программисты самостоятельно составляли документацию, где описывалась существующая проблема, предложенные методы ее решения, альтернативы, а также преимущества и недостатки конкретного решения. Они сообщали, чему научились при выполнении данного проекта. Я старался заставить программистов писать и выражать свои мысли на бумаге, а они не привыкли это делать.
Людям не нравится выражать свои мысли в виде написанных или напечатанных слов. Это сложно. По‑настоящему хорошие инженеры программного обеспечения обычно отличные писатели: они прекрасно выражают свои мысли и способны донести их до других людей. Программистам средней руки труднее представить себе целостную картину поставленной задачи, чем тем специалистам, которые описывают свои действия на бумаге.
Ливингстон. Вы создали в своей компании необычную рабочую атмосферу, стимулируя сотрудников активно участвовать в общем деле и брать на себя ответственность. Вы проводили тренинги?
Гринспан. Проводили и очень жестко проверяли программный код. Согласно нашему плану, рост компании осуществлялся за счет привлечения практикантов. Мы приглашали в компанию новых сотрудников – а в ней уже работало с десять человек, контролировавших новичков и проверявших программный код, – и объясняли, как использовать готовые инструменты вместо написания лишнего кода. Сотрудник, успешно выполнивший два‑три проекта для клиентов, мог взять в «подмастерье» новичка и наставлять неопытного программиста.
В среднем наши сотрудники были моложе, чем в других компаниях по разработке программного обеспечения. Кроме того, у нас работало больше женщин. Ева Андерсон и Трейси Адамс входили в руководство организации – редкость для ИТ‑компании. В проектах участвовало не больше двух‑трех сотрудников. В результате часто приходилось работать в очень напряженном режиме. Но этот метод я почерпнул в аспирантуре Массачусетского технологического института.
Чтобы накопить опыт и научиться завершать начатые дела, молодому человеку необходимо довольно много трудиться. Преимущество заключается в том, что новичок выполняет значительный объем работы в проекте и может считать, что создал половину сайта для заказчика. Его имя появляется не только в резюме или среди двадцати разработчиков программы, но и в списке нескольких создателей реально работающего сайта.